Prometheus告警规则

通过设定Prometheus告警规则,您可以为特定的监控指标设定条件触发告警。满足这些条件时,系统会生成相应的告警事件。为了接收这些告警通知,您需要配置告警通知策略,它可以将告警通过短信、电子邮件、电话、钉钉群机器人、企业微信机器人或Webhook等多种方式发送给您。

前提条件

已接入Prometheus,具体操作,请参见:

功能入口

  1. 登录Prometheus控制台
  2. 在左侧导航栏,单击告警规则列表

  3. Prometheus告警规则页面,单击创建Prometheus告警规则

通过静态阈值创建Prometheus告警规则

静态阈值检查类型为您提供了一系列系统预定义的告警指标。通过选择这些现有指标,您可以通过直观的方式迅速建立相应指标的告警规则。

  1. 创建Prometheus告警规则页面设置以下告警参数。

    参数

    说明

    示例

    告警名称

    告警的名称。

    生产集群-容器CPU使用率告警

    检测类型

    选择静态阈值

    静态阈值

    Prometheus实例

    选择需要创建告警的Prometheus实例。

    生产集群

    告警分组

    选择告警分组。

    不同Prometheus类型支持的告警分组不同,告警分组备选项会随着选择的Prometheus实例类型的不同产生变化。

    Kubernetes负载

    告警指标

    选择想要配置告警的指标,每个告警分组对应不同的指标。

    容器CPU使用率

    告警条件

    基于告警指标预置内容设置告警事件产生条件。

    当容器CPU使用率大于80%时,满足告警条件。

    筛选条件

    根据告警指标,设置当前配置的告警规则适用的范围,即所有符合筛选条件的资源满足此条告警规则时,均会产生告警事件。

    可选筛选条件包括:

    • 遍历:告警规则适用于当前Prometheus实例下的所有资源。筛选条件默认为遍历。

    • 等于:选择该条件后,需要继续输入具体资源名称。所创建的告警规则将仅适用于对应资源。不支持同时填写多个资源。

    • 不等于:选择该条件后,需要继续输入具体资源名称。所创建的告警规则将适用于除该资源之外的其他资源。不支持同时填写多个资源。

    • 正则匹配:选择该条件后,按需输入正则表达式匹配相应的资源名称。所创建的告警规则将适用于符合该正则表达式的所有资源。

    • 正则不匹配:选择该条件后,按需输入正则表达式匹配相应的资源名称。所创建的告警规则将过滤符合该正则表达式的所有资源。

    说明

    完成筛选条件设置后,会弹出数据预览区域。

    遍历

    数据预览

    数据预览区域展示告警条件对应的PromQL语句,并以时序曲线的形式展示当前告警规则配置的监控指标的值。

    默认仅展示一个资源的实时值,您可以在该区域的筛选框中选择目标资源以及时间区间来查看不同时间区间和不同资源的值。

    说明
    • 告警阈值将会以一条红色直线的形式显示在时序曲线中,满足告警阈值的时序曲线显示为深红色,不满足告警阈值的时序曲线显示为蓝色。

    • 将鼠标悬浮于时序曲线上,可以查看对应时间点的资源详情。

    • 在时序曲线上选中一段时间,可以查看对应时间段的时序曲线。

    持续时间

    • 当告警条件满足时,直接产生告警事件:任何一个数据点满足阈值,就会产生告警事件。

    • 当告警条件满足持续N分钟时,才产生告警事件:即只有当满足阈值的时间大于等于N分钟时,才产生告警事件。

    1

    告警等级

    自定义告警等级。默认告警等级为默认,告警严重程度从默认、P4、P3、P2、P1逐级上升。

    默认

    告警内容

    用户收到的告警信息。您可以使用Go template语法在告警内容中自定义告警参数变量。

    命名空间:{{$labels.namespace}} / Pod: {{$labels.pod_name}} / 容器:{{$labels.container}} CPU使用率{{$labels.metrics_params_opt_label_value}} {{$labels.metrics_params_value}}%, 当前值{{ printf "%.2f" $value }}%

    告警通知

    • 极简模式:可以设置通知对象、通知时段重复策略

    • 普通模式

      • 不指定通知策略:若选择此选项,当完成创建告警规则后,您可以在通知策略页面新建通知策略并指定匹配规则和匹配条件(如告警规则名称等)来匹配该告警规则。当该告警规则被触发产生告警事件后,告警信息会被发送给通知策略中指定的联系人或联系人组。更多信息,请参见通知策略

      • 指定某个通知策略:若选择此项,ARMS会自动在对应的通知策略添加一条匹配规则,匹配规则内容为告警规则ID(以告警规则名称的方式呈现),以确保当前告警规则产生的告警事件一定可以被选择的通知策略匹配到。

      重要

      快速指定通知策略只能保证当前告警规则产生的告警事件一定能够被所选的通知策略匹配到并且产生对应的告警。但是,当前告警规则产生的事件同时也可能被其它设置了模糊匹配的通知策略匹配到并且产生告警。告警规则产生的告警事件和通知策略之间是多对多的匹配关系。

    不指定通知规则

    高级设置

    告警检查周期

    指告警规则每隔N分钟进行一次检查,判断数据是否满足告警条件。默认1分钟,最少设置1分钟。

    1

    数据完整后再检查

    标签

    设置告警标签,设置的标签可用作通知策略匹配规则的选项。

    注释

    设置告警的注释。

  2. 设置完成后单击保存。在Prometheus告警规则列表页面,您可以查看当前告警规则的状态。

    如果该告警规则的状态自动中断,请您根据提示的中断原因,对该告警规则进行重新编辑,并单击启动,然后在弹出的对话框中单击确认。如果您遇到无法解决的规则中断问题,请联系ARMS告警服务钉钉号(d9j_rg9e4062f)协助解决。

    可能导致告警规则状态自动中断的原因有以下几种:

    • 规则查询结果的数量超过1500。

    • 告警管理中未配置任何通知对象。

    • Prometheus实例处于已卸载或不可用状态。

通过自定义PromQL创建Prometheus告警规则

如果需要对静态阈值中系统预设指标之外的指标进行监控,您可以使用自定义PromQL检测类型来创建告警规则。

  1. 创建Prometheus告警规则页面设置以下告警参数。

    参数

    说明

    示例

    告警名称

    告警的名称。

    Pod的CPU使用率大于8%

    检测类型

    设置为自定义PromQL

    自定义PromQL

    Prometheus实例

    选择需要创建告警的Prometheus实例。

    参考告警分组

    选择告警分组。

    不同Prometheus类型支持的告警分组不同,告警分组备选项会随着选择的Prometheus实例类型的不同产生变化。

    Kubernetes负载

    参考告警指标

    可选。参考指标中包括了常见指标的自定义PromQL配置方法,您可以选择已有的类似指标来进行填充,然后参考对应指标的配置方式进行修改以完成告警配置。

    参考指标参数会根据选择的Prometheus实例类型自动过滤支持的告警指标。

    Pod磁盘使用率告警

    自定义PromQL语句

    使用PromQL语句设置告警规则表达式。

    命名空间:{{$labels.namespace}}/Pod: {{$labels.pod_name}}/磁盘设备:{{$labels.device}} 使用率超过90%,当前值{{ printf "%.2f" $value }}%max(container_fs_usage_bytes{pod!="", namespace!="arms-prom",namespace!="monitoring"}) by (pod_name, namespace, device)/max(container_fs_limit_bytes{pod!=""}) by (pod_name,namespace, device) * 100 > 90

    数据预览

    数据预览区域展示告警条件对应的PromQL语句,并以时序曲线的形式展示当前告警规则配置的监控指标的值。

    默认仅展示一个资源的实时值,您可以在该区域的筛选框中选择目标资源以及时间区间来查看不同时间区间和不同资源的值。

    说明
    • 将鼠标悬浮于时序曲线上,可以查看对应时间点的资源详情。

    • 在时序曲线上选中一段时间,可以查看对应时间段的时序曲线。

    持续时间

    • 当告警条件满足时,直接产生告警事件:任何一个数据点满足阈值,就会产生告警事件。

    • 当告警条件满足持续N分钟时,才产生告警事件:即只有当满足阈值的时间大于等于N分钟时,才产生告警事件。

    1

    告警等级

    自定义告警等级。默认告警等级为默认,告警严重程度从默认、P4、P3、P2、P1逐级上升。

    默认

    告警内容

    用户收到的告警信息。您可以使用Go template语法在告警内容中自定义告警参数变量。

    命名空间:{{$labels.namespace}}/Pod: {{$labels.pod_name}}/磁盘设备:{{$labels.device}} 使用率超过90%,当前值{{ printf "%.2f" $value }}%

    告警通知

    • 极简模式:可以设置通知对象、通知时段重复策略

    • 普通模式

      • 不指定通知策略:若选择此选项,当完成创建告警规则后,您可以在通知策略页面新建通知策略并指定匹配规则和匹配条件(如告警规则名称等)来匹配该告警规则。当该告警规则被触发产生告警事件后,告警信息会被发送给通知策略中指定的联系人或联系人组。更多信息,请参见通知策略

      • 指定某个通知策略:若选择此项,ARMS会自动在对应的通知策略添加一条匹配规则,匹配规则内容为告警规则ID(以告警规则名称的方式呈现),以确保当前告警规则产生的告警事件一定可以被选择的通知策略匹配到。

      重要

      快速指定通知策略只能保证当前告警规则产生的告警事件一定能够被所选的通知策略匹配到并且产生对应的告警。但是,当前告警规则产生的事件同时也可能被其它设置了模糊匹配的通知策略匹配到并且产生告警。告警规则产生的告警事件和通知策略之间是多对多的匹配关系。

    不指定通知规则

    高级设置

    告警检查周期

    指告警规则每隔N分钟进行一次检查,判断数据是否满足告警条件。默认1分钟,最少设置1分钟。

    1

    数据完整后再检查

    标签

    设置告警标签,设置的标签可用作通知策略匹配规则的选项。

    注释

    设置告警的注释。

  2. 设置完成后单击保存。在Prometheus告警规则列表页面,您可以查看当前告警规则的状态。

    如果该告警规则的状态自动中断,请您根据提示的中断原因,对该告警规则进行重新编辑,并单击启动,然后在弹出的对话框中单击确认。如果您遇到无法解决的规则中断问题,请联系ARMS告警服务号(d9j_rg9e4062f)协助解决。

    可能导致告警规则状态自动中断的原因有以下几种:

    • 规则查询结果的数量超过1500。

    • 告警管理中未配置任何通知对象。

    • Prometheus实例已经卸载或不可用状态。

管理告警规则

Prometheus告警规则页面上,您可以对告警规则执行启动、停止、编辑、删除、查看告警详情等操作。

  1. 可选:Prometheus告警规则页面设置告警过滤条件,或者在搜索框中输入告警名称并单击搜索图标。

  2. 在搜索结果列表的操作列中,按需对目标告警规则采取以下操作:

    • 如需编辑告警规则,单击编辑,在编辑告警页面中编辑告警规则,并单击保存

    • 如需删除告警规则,单击删除,并在提示对话框中单击确认

    • 如需启动已停止的告警规则,单击启动,并在提示对话框中单击确认

    • 如需停止已启动的告警规则,单击停止,并在提示对话框中单击确认

    • 如需查看告警事件历史,单击告警事件历史,在事件列表页面上查看相关记录。